%@@@@@%#++++++++****++*++=============###%@@@%%%%%%%%####%%%%%%%%###%
*#@@@@%*+++++++++===--=------==+****++*%@@@@@@%%%%%%%%%#####%%%%%%%%%
###*++*==---------------------*######**#@%@%@@@%%%%@%%%####%%%%%%%@@@
%#++=+*=-------------------===*%%%##%%#%@@%@@@@%%%%%#%#**%####%%%%@@@
+====++==================+++**#%%##*+*#@@@%%%%%%%%###****+++++++++**#
+--==========+=++++++++**########%*+=*##**%%%%%%%%%%%%%%%%%%####**++*
#*+==++++++++*++**#***********#####**##+===+*%%%%%%%%%%%%%%%%%%%%%%#%
+=++++++++**#************##******######***#*+=+%%%%%%%%%%%%%%%%%%%%%%
++++*****######***************+**#######%#****+%%%%%%%%%%%%%%%%%%%%%%
********++**++****#*#******++=+*######*#***####%%%%%%%%%%%%%%%%%%%%%%
*****++************#********+###%%##%#*##%%#%%%%%%%%%%%%%%%%%%%%%%%%%
#************################%#######%*#*###%%%%%%%%%%%%%%%%%%%%%%%%%
##****#######%%#%%%%###%#####%%%#####%#*#####################%%%%%%%%
##########%%#%%%%%%####%%%%%%%%%%%%%%@%*#*##**%%%%%%#################
%%%%%%%%%%%%%%%%%%%#####%%%%%%%%%%%%%%%####%#%#######%%###%%%%%%%%%%%
%%%%%%%%%%%%%%%%%########%%%%%#%%####*++++#%%%%%%%%%%%%%%%%%%%%%%%%%%
#########%%%%%%%%%#######%%%%%%%###***###*%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%#%%%%%%%%%%%%%#######%%#%#####*+#####*%#%%%%%%%%%%%%%%%%%%%%%%%%%
%##%%%%%%%%%%%%%%#########*++***###+*####@@@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%#####**#####+********++*@@@@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%@%%%%#####**####%%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%####***####%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%
@@@%%@@@@@@@@@@%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%@@@@@@%%%@@@@@%%%@@@